最后更新时间:2019年7月4日
3D灰度模型显示方法
移动端的二维地图视图中,支持3D灰度模型加载,即通过MapGIS桌面软件设置二维矢量区图层的自绘模式属性,然后转换为矢量离线数据包加载即可。
采用基于二维区图层的方式组织3D灰度模型数据的大体步骤如下,详细操作步骤参考数据组织配置 > 数据预处理模块。
(1)准备3D楼块源数据。在MapGIS 10桌面工具(MapWorkSpace)中制作二维区图层(building),在当前二维区图层中右键属性-->显示-->自绘参数设置;
(2)组织地图文档。将二维区图层和其他需要的二维图层一起组织成地图文档(如本示例组织地图文档为buildings.mapx);
(3)数据转换。将上一步生成的地图文档(如buildings.mapx)使用桌面工具中的移动数据转换工具进行转换,转换完成后会在指定存放路径下生成一个文件夹,文件夹包含转换后的离线数据库文件与地图文档(如buildings.db、buildings.mapx),把转换后的数据放到移动设备存储卡的相应数据目录中;
(4)地图加载。在程序代码中编写加载地图文档的方法,接口调用非常简单,与离线矢量地图的加载方式相同,代码如下:
@interface Show3DViewMap_ViewController ()<MapViewDelegate> //定义地图视图对象 @property (nonatomic,strong) MGSMapView *mMapView;
3D灰度模型地图加载:
_mMapView=[[MGSMapView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-64)]; [self.view addSubview:_mMapView]; //三维灰度模型路径 NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject]stringByAppendingPathComponent:@"/MapGIS Mobile 2D Sample/Map/MapShow/Buildings/buildings.mapx"]; //设置代理 [_mMapView setDelegate:self]; //加载三维灰度模型 [_mMapView loadFromFileAsync:path];
地图加载回调监听:
//开始加载地图监听 -(void)willStartLoadingMapWithMapView:(MGSMapView *)mapView strDocPath:(NSString *)strDocPath{ NSLog(@"开始加载地图"); } //加载地图完成事件监听 -(void)didFinishLoadingMapWithMapView:(MGSMapView *)mapView strDocPath:(NSString *)strDocPath{ NSLog(@"地图加载成功"); } //加载地图失败事件监听 -(void)didFailLoadingMapWithMapView:(MGSMapView *)mapView strDocPath:(NSString *)strDocPath{ NSLog(@"地图加载失败"); }
显示效果如下所示: